import sqlite3

def create_and_populate_database():
  #连接到本地数据库文件
  conn = sqlite3.connect('SportProducts.db')
  cursor = conn.cursor()

  #检查是否存在名为“products”的表，如果不存在则创建
  cursor.execute('SELECT name FROM sqlite_master WHERE type="table" AND name="products";')
  if cursor.fetchone() is None:
      #创建“products”表
      cursor.execute('''CREATE TABLE products (
                        product_id TEXT ,
                        product_name TEXT ,
                        description TEXT,
                        specifications TEXT ,
                        usage TEXT ,
                        brand TEXT ,
                        price REAL ,
                        stock_quantity INTEGER 
                        
                    );''')

      #向表中添加一些纯中文具体示例数据
      products = [
          ('1', '运动鞋', '运动鞋是运动所必须的。', '运动鞋的规格是：35-45码。', '运动鞋的用途是：用于运动。', ' HL-运动鞋', '89.9', 100),
          ('2', '运动服', '运动服是运动所必须的。', '运动服的规格是：L-XL。', '运动服的用途是：用于运动。', ' HL-运动服', '69.9', 100),
          ('3', '运动包', '运动包是运动所必须的。', '运动包的规格是：小-大。', '运动包的用途是：用于运动。', ' HL-运动包', '49.9', 100),
          ('4', '运动袜', '运动袜是运动所必须的。', '运动袜的规格是：S-XXL。', '运动袜的用途是：用于运动。', 'HL-运动袜', '39.9', 100),
          ('5', '运动手套', '运动手套是运动所必须的。', '运动手套的规格是：小-大。', '运动手套的用途是：用于运动。', 'HL-运动手套', '29.9', 100),
          ('6', '运动护具', '运动护具是运动所必须的。', '运动护具的规格是：小-大。', '运动护具的用途是：用于运动时的保护。', 'HL-运动护具', '19.9', 100),
          ('7', '运动球', '运动球是运动所必须的。', '运动球的规格是：小-大。', '运动球的用途是：用于运动。', 'HL-运动球', '19.9', 100),
          ('8', '运动架', '运动架是运动所必须的。', '运动架的规格是：20cm-60cm。', '运动架的用途是：用于运动时的固定。', 'HL-运动架', '19.9', 100),
          ('9', '运动灯', '运动灯是运动所必须的。', '运动灯的规格是：轻量化-大灯。', '运动灯的用途是：用于夜间运动时的照明。', 'HL-运动灯', '19.9', 100),
          ('10', '运动计步器', '运动计步器是运动所必须的。', '运动计步器的规格是：小-大。', '运动计步器的用途是：用于运动时的计步。', 'HL-运动计步器', '19.9', 100),
          ('11', '休闲球', '休闲球是运动所必须的。', '休闲球的规格是：中号。', '休闲球的用途是：休闲。', 'HL-休闲球', '19.9', 100)

   
      ]
      #插入数据到表中
      cursor.executemany('''INSERT INTO products (product_id, product_name, description, specifications, usage, brand, price, stock_quantity) VALUES (?, ?, ?, ?, ?, ?, ?, ?);''', products)
      #提交更改
      conn.commit()
      #检索并打印所有记录来验证数据是否已插入
      cursor.execute('SELECT * FROM products;')
      rows = cursor.fetchall()
      print(rows)
      #关闭连接
      conn.close()
      return rows
  

#测试样例：
# create_and_populate_database() 



def query_by_product_name(product_name):
      #连接SQLite数据库
      conn = sqlite3.connect('SportProducts.db')
      cursor = conn.cursor()

      #使用SQL查询按名称来查找产品。'%'符号允许部分匹配。
      cursor.execute('SELECT * FROM products WHERE product_name LIKE ?;', ('%' + product_name + '%',))
      #获取所有查询到的数据
      rows = cursor.fetchall()
      #关闭数据库连接
      conn.close()

      return rows

#测试样例：
# matching_products = query_by_product_name('球')
# print('查询结果：')
# for product in matching_products:
#   print(product)
